/*
 * 物理内存分配器头文件
 * 定义物理内存分配和释放的接口
 */

#ifndef KALLOC_H
#define KALLOC_H

#include "../fs/types.h"

// 物理内存分配器接口
void pmm_init(void);           // 初始化内存分配器
void* alloc_page(void);         // 分配一个物理页
void free_page(void* pa);       // 释放一个物理页

// 内存统计接口
uint64 get_free_pages(void);    // 获取空闲页数量
uint64 get_total_pages(void);   // 获取总页数量

// 初始化
void freerange(void* pa_start, void* pa_end);

#endif // KALLOC_H